/**
 * 山丘客服客户端
 * @param {socket.io client} io 
 * @param {layui} layui 
 * @param {JQuery} $ 
 * @param {json config} config 
 */
function shanqiu_customer (io, layui, $, config) {
    var defaultConfig = {
      appid: 'self',
      getKefuMode: 'random', // random, callback
      socket_url: 'http://localhost:3000',
    };
    $.extend(defaultConfig, config);

    // console.log(defaultConfig);
    layui.use('layim', function(layim){
      layim.config({
        brief: true, //是否简约模式（如果true则不显示主面板）
            //上传图片接口（返回的数据格式见下文），若不开启图片上传，剔除该项即可
        uploadImage: {
          url: '', //接口地址
          type: 'post' //默认post
        },
        //上传文件接口（返回的数据格式见下文），若不开启文件上传，剔除该项即可
        uploadFile: {
          url: '', //接口地址
          type: 'post' //默认post
        },
        minRight: '0px',
        notice: true
      }).chat({
        name: '在线客服'
        ,type: 'friend'
        ,avatar: 'http://tp1.sinaimg.cn/5619439268/180/40030060651/1'
        ,id: -2
      });
      layim.setChatMin();
      console.log("im is ready");
      // 连接socket服务器
      var socket = io(defaultConfig.socket_url);
      socket.on('connect', function() {
        console.log('this client connect');
      });
      socket.on('disconnect', function(reason) {
        console.log('disconnect reason:' + reason);
        if (reason === 'io server disconnect') {
          // the disconnection was initiated by the server, you need to reconnect manually
          socket.connect();
        }
        // else the socket will automatically try to reconnect
      });

      socket.on('ping', function() {
        console.log('ping');
      });

      socket.on('pong', function() {
        console.log('pong');
      });

      socket.on('im.message', function(data) {
        console.log(data);
        layim.getMessage({
          username: "纸飞机" //消息来源用户名
          ,avatar: "http://tp1.sinaimg.cn/1571889140/180/40030060651/1" //消息来源用户头像
          ,id: "100000" //消息的来源ID（如果是私聊，则是用户id，如果是群聊，则是群组id）
          ,type: "friend" //聊天窗口来源类型，从发送消息传递的to里面获取
          ,content: "嗨，你好！本消息系离线消息。" //消息内容
          ,cid: 0 //消息id，可不传。除非你要对消息进行一些操作（如撤回）
          ,mine: false //是否我发送的消息，如果为true，则会显示在右方
          ,fromid: "100000" //消息的发送者id（比如群组中的某个消息发送者），可用于自动解决浏览器多窗口时的一些问题
          ,timestamp: 1467475443306 //服务端时间戳毫秒数。注意：如果你返回的是标准的 unix 时间戳，记得要 *1000
        });
      });
      // 获取客服
      if (typeof defaultConfig.getKefuMode == 'string') {
        if (defaultConfig.getKefuMode == 'random') {
          // 随机获取客服
          socket.emit('kefu.getRandom1', defaultConfig.appid, function(data) {
            console.log(data);
          });
        }
      } else if (typeof defaultConfig.getKefuMode == 'function') {
        // 回调方法获取对应的在线客服
      }
      layim.on('online', function(status) {

      });

      layim.on('sendMessage', function(res){
        socket.emit('im.message', res);
        console.log(res);
      });
    });
  }